import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  plugins: [ // 插件，让Vite能够正确编译和热更新.vue单文件组件
    vue(),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  server: { // 开发环境下的请求代理（避免浏览器CORS限制）
    proxy: {
      // 如果后端的接口路径也包含/api，则可以不rewrite
      '/api': {
        target: 'http://localhost:8080', // 后端接口地址
        changeOrigin: true,  // 修改请求头的Host为目标地址
        /**
         * 根据后端接口路径选择是否重写：
         * - 如果后端接口本身带/api前缀，直接转发即可（可省略rewrite）
         * - 如果后端接口不带/api前缀，就去掉前缀再转发
         */
        // rewrite: path => path.replace(/^\/api/, ''),
      },
    },
  },
  resolve: { // 定义路径别名，把@映射到src目录，减少../../这种相对路径。
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
})
